package com.rfid.dao.jdbc;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import com.rfid.dao.interfaces.TipoAccesorioDao;
import com.rfid.domain.TipoAccesorio;

@Repository
@SuppressWarnings({ "rawtypes", "unchecked" })
public class TipoAccesorioJdbc implements TipoAccesorioDao {
	@Autowired
	private JdbcTemplate jdbcTemplate;

	@Override
	public List<TipoAccesorio> listarTipo(String descripsion) throws SQLException {
		return null;
	}

	@Override
	public TipoAccesorio obtener(int idTipoAccesorio) throws SQLException {
		String Sql = "SELECT * FROM tipo_accesorio WHERE idtipo_accesorio = ?";
		List matches = jdbcTemplate.query(Sql, new Object[] { idTipoAccesorio }, new RowMapper() {

			@Override
			public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
				TipoAccesorio tipoAccesorio = new TipoAccesorio();
				tipoAccesorio.setIdTipoAccesorio(rs.getInt("idtipo_accesorio"));
				tipoAccesorio.setDescripcion(rs.getString("descripcion"));
				return tipoAccesorio;
			}
		});

		return (matches.size() > 0 ? (TipoAccesorio) matches.get(0) : null);
	}

	public List<TipoAccesorio> listarTodos() throws SQLException {
		String Sql = "SELECT * FROM tipo_accesorio";
		List matches = jdbcTemplate.query(Sql, new RowMapper() {

			@Override
			public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
				TipoAccesorio tipoAccesorio = new TipoAccesorio();
				tipoAccesorio.setIdTipoAccesorio(rs.getInt("idtipo_accesorio"));
				tipoAccesorio.setDescripcion(rs.getString("descripcion"));
				return tipoAccesorio;
			}
		});

		return (matches.size() > 0 ? (List<TipoAccesorio>) matches : null);
	}

	@Override
	public boolean eliminar(String idAccesorio) throws SQLException {
		// TODO Auto-generated method stub
		return false;
	}
}
